www.gusucode.com > php框架系统:MDPHP麦迪源码 v1.xPHP源码程序 > php框架系统:MDPHP麦迪源码 v1.x/mdphp_v1.0.beta/mdphp_v1.0.beta/Library/Model/Db/mysqli.php
<?php /** * 麦迪MySqli驱动 * @author: 麦迪科技 <i@md8.cc> * @link: http://soft.md8.cc * @version: 1.0 */ namespace MDPHP; class DbMysqli implements DbInterface{ public $error, $result; static protected $link; /** * 建立数据通道 * @param mixed $connection 数据库连接信息 */ public function __construct($connection){ if(!self::$link){ $link = new \mysqli($connection['HOST'], $connection['USER'], $connection['PWD'], $connection['NAME'], $connection['PORT']); if(mysqli_connect_errno()){ $this->error = array('id'=>'Not_Load_DB', 'title'=>'数据库连接失败', 'content'=>mysqli_connect_error()); return; } $link->set_charset($connection['CHARSET']); self::$link = $link; } } /** * 执行SQL * @param string $sql SQL语句 * @return index MYSQL资源标识符 */ public function query($sql){ if(is_object($this->result)) $this->result->close(); return ($this->result = self::$link->query($sql)); } /** * 从结果集中取出一行 * @return array/bool 成功返回一组, 失败返回False */ public function fetch($close=true){ $array = is_object($this->result) ? $this->result->fetch_assoc() : array(); if($close && is_object($this->result)){ $this->result->close(); $this->result = null; } return $array; } /** * 获取最后插入主键ID * @return int ID */ public function getInsertId(){ return self::$link->insert_id; } /** * 获取受影响行数 * @return int 行数 */ public function getAffectedRows(){ return self::$link->affected_rows; } /** * 获取数据库版本 * @return int 版本 */ public function getVersion(){ return self::$link->server_info; } /** * 开启事务处理 */ public function beginTrans(){ return self::$link->autocommit(0); } /** * 提供一个事务 */ public function commit(){ self::$link->commit(); self::$link->autocommit(1); } /** * 回滚事务 */ public function rollback(){ self::$link->rollback(); self::$link->autocommit(1); } /** * 数据安全处理 * @return int 处理后数据 */ public function escapeString($str){ $quot = is_numeric($str) ? '' : '"'; if(self::$link) return $quot . self::$link->real_escape_string($str) . $quot; else return $quot . addslashes($str) . $quot; } /** * 资源回收 */ public function close(){ if(is_resource(self::$link)){ self::$link->close(); self::$link = null; } } /** * 析构函数 */ public function __destruct(){ $this->close(); } }